﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessLayer.Interfaces;
using BusinessLayer.Implementacion;
using EntityLayer;

namespace proyGestionActivos.Gestion
{
    public partial class wfrmActualizarPrograma : System.Web.UI.Page
    {
        IFacadeActualizarPrograma BLActualizarPrograma;
        private static int accion_boton = 0;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.cargarGrillaProgramas();
            }

            this.inHabilitarModificar();
        }

        private void cargarGrillaProgramas()
        {
            BLActualizarPrograma = new FacadeActualizarPrograma();
            try
            {
                grdPrincipal.DataSource = BLActualizarPrograma.listarProgramas();
                grdPrincipal.DataBind();
            }
            catch (Exception adc)
            {

                lblmensOk.Text = adc.Message;
                popupOK.HeaderText = "Error al cargar grilla";
                popupOK.ShowOnPageLoad = true;
            }
        }

        private void insertarPrograma()
        {
            BLActualizarPrograma = new FacadeActualizarPrograma();
            try
            {
                T_Programa obj = new T_Programa();
                obj.CodigoPrograma = BLActualizarPrograma.ObtenerNroProgramaMax();
                obj.Concurrente = chkConcurrente.Checked;
                obj.Descripcion = txtDescripcion.Text;
                obj.Estado = Convert.ToBoolean(Convert.ToInt16(cboEstado.Value.ToString()));
                obj.Fabricante = txtFabricante.Text;
                obj.NombrePrograma = txtPrograma.Text;
                if (BLActualizarPrograma.Insertar(obj))
                {
                    lblmensOk.Text = "Se registro programa  correctamente.";
                    popupOK.HeaderText = "Mensaje";
                    popupOK.ShowOnPageLoad = true;
                }
            }
            catch (Exception adc)
            {
               lblmensOk.Text = adc.Message;
                popupOK.HeaderText = "Error al cargar grilla";
                popupOK.ShowOnPageLoad = true;
            }
        }

        private void modificarPrograma()
        {
            BLActualizarPrograma = new FacadeActualizarPrograma();
            try
            {
                T_Programa obj = new T_Programa();
                obj.CodigoPrograma = txtCodigoPrograma.Text;
                obj.Concurrente = chkConcurrente.Checked;
                obj.Descripcion = txtDescripcion.Text;
                obj.Estado = Convert.ToBoolean(Convert.ToInt16(cboEstado.Value.ToString()));
                obj.Fabricante = txtFabricante.Text;
                obj.NombrePrograma = txtPrograma.Text;
                if (BLActualizarPrograma.Modificar(obj))
                {
                    lblmensOk.Text = "Se modificó correctamente el programa.";
                    popupOK.HeaderText = "Mensaje";
                    popupOK.ShowOnPageLoad = true;
                    btnModficarP.ClientEnabled = false;
                    btnAceptarP.ClientEnabled = true;
                }
            }
            catch (Exception adc)
            {
                lblmensOk.Text = adc.InnerException==null ? adc.Message:adc.InnerException.Message;
                popupOK.HeaderText = "Error al cargar grilla";
                popupOK.ShowOnPageLoad = true;
            }
        }

        private void eliminarPrograma()
        {
            BLActualizarPrograma = new FacadeActualizarPrograma();
            try
            {
                T_Programa obj = new T_Programa();
                obj.CodigoPrograma = txtCodigoPrograma.Text;
                obj.Concurrente = chkConcurrente.Checked;
                obj.Descripcion = txtDescripcion.Text;
                obj.Estado = Convert.ToBoolean(Convert.ToInt16(cboEstado.Value.ToString()));
                obj.Fabricante = txtFabricante.Text;
                obj.NombrePrograma = txtPrograma.Text;
                if (BLActualizarPrograma.Eliminar(obj))
                {
                    lblmensOk.Text = "Se eliminó el programa seleccionado.";
                    popupOK.HeaderText = "Mensaje";
                    popupOK.ShowOnPageLoad = true;
                }
            }
            catch (Exception adc)
            {
                lblmensOk.Text = adc.Message;
                popupOK.HeaderText = "Error al cargar grilla";
                popupOK.ShowOnPageLoad = true;
            }
        }

        private void limpiarControles()
        {
            txtCodigoPrograma.Text = string.Empty;
            txtDescripcion.Text = string.Empty;
            txtFabricante.Text = string.Empty;
            txtPrograma.Text = string.Empty;
            cboEstado.SelectedIndex = 0;
            chkConcurrente.Checked = false;
        }

        private void inHabilitarModificar()
        {
            if (txtCodigoPrograma.Text == string.Empty || txtFabricante.Text == string.Empty || txtDescripcion.Text == string.Empty || txtPrograma.Text==string.Empty)
            {
                btnModficarP.ClientEnabled = false;
            }
            else
            {
                btnAceptarP.ClientEnabled = true;
            }

        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            if (accion_boton==1)
            {
                this.insertarPrograma();
               
            }
            else if (accion_boton==2)
            {
                this.modificarPrograma();
               
            }
            else if (accion_boton == 3)
            {
                this.eliminarPrograma();
            }
            else
            {
                lblmensOk.Text = "No se especificó una acción.";
                popupOK.HeaderText = "Mensaje";
                popupOK.ShowOnPageLoad = true;
            }
            this.limpiarControles();
            this.cargarGrillaProgramas();
  
            
        }

        protected void btnAceptarP_Click(object sender, EventArgs e)
        {
            accion_boton = 1;
            lblmenConfir.Text = "Estas seguro de registrar este programa.";
            popupConfirmacionT.ShowOnPageLoad = true;
        }

        protected void btnModficarP_Click(object sender, EventArgs e)
        {
            accion_boton = 2;
            lblmenConfir.Text = "Estas seguro de modificar este programa.";
            popupConfirmacionT.ShowOnPageLoad = true;
        }

        protected void btnEliminarP_Click(object sender, EventArgs e)
        {
            accion_boton = 3;
            lblmenConfir.Text = "Estas seguro de eliminar este programa.";
            popupConfirmacionT.ShowOnPageLoad = true;
        }

        protected void grdPrincipal_FocusedRowChanged(object sender, EventArgs e)
        {
  if (!IsPostBack)
           {
               return;
           }
  if (grdPrincipal.FocusedRowIndex != -1)
	{
        txtCodigoPrograma.Text = grdPrincipal.GetRowValues(grdPrincipal.FocusedRowIndex, "CodigoPrograma").ToString();
        txtPrograma.Text = grdPrincipal.GetRowValues(grdPrincipal.FocusedRowIndex, "NombrePrograma").ToString();
        txtDescripcion.Text = grdPrincipal.GetRowValues(grdPrincipal.FocusedRowIndex, "Descripcion").ToString();
        txtFabricante.Text = grdPrincipal.GetRowValues(grdPrincipal.FocusedRowIndex, "Fabricante").ToString();
        cboEstado.SelectedIndex = Convert.ToBoolean(grdPrincipal.GetRowValues(grdPrincipal.FocusedRowIndex, "Estado")) == true ? 0 : 1;
        chkConcurrente.Checked = (bool)grdPrincipal.GetRowValues(grdPrincipal.FocusedRowIndex, "Concurrente");
        btnAceptarP.ClientEnabled = false;
        btnModficarP.ClientEnabled = true;
	}
        }

        protected void btnCancelarP_Click(object sender, EventArgs e)
        {
           // Response.Redirect("../Index.aspx");
            Response.Redirect("~/Administracion/wFrmDefault.aspx?id=rTbdn/32SJs=");
        }

        protected void btnresponse_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Administracion/wFrmDefault.aspx?id=rTbdn/32SJs=");
        }
    }
}